使用Numpy实现数组索引和切片的"添加"操作 |
您所在的位置:网站首页 › python numpy二维数组切片 › 使用Numpy实现数组索引和切片的"添加"操作 |
1> hpaulj..: 使用foo[idx].阅读以下内容,了解我是如何实现这一目标的. foo[1,2,:] 有效地: In [379]: foo[(1,2,slice(None))] Out[379]: array([ 0., 1., 0.])Python解释器将转换1,2,:为此元组,并将其传递给foo.__getitem__方法. 所以我们必须找到构建元组的正确方法.一个是: In [380]: tuple(idx)+(slice(None),) Out[380]: (1, 2, slice(None, None, None))导致: In [381]: foo[tuple(idx)+(slice(None),)] Out[381]: array([ 0., 1., 0.])其实我不需要tuple电话,idx已经是一个元组了 In [386]: idx Out[386]: (1, 2) In [387]: idx+(slice(None),) Out[387]: (1, 2, slice(None, None, None))我需要tuple([1,2]),如果idx草签为列表. 实际上是双重的,解决方案更简单.由于我们使用:的是最后一个维度,我们可以省略它.由于idx是元组,它已经索引了前两个维度. In [394]: foo[idx] Out[394]: array([ 0., 1., 0.])这对电话可以提供一些清晰度: In [396]: foo[(1,2)] Out[396]: array([ 0., 1., 0.]) In [397]: foo[[1,2]] Out[397]: array([[[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 1., 0.]], [[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]]]) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |